Domain Modeling Made Functional